//用于验证初始化顺序
// 先初始化变量 然后按顺序初始化init

package play

import (
	"fmt"
	//"os"
	//"time"
	//"log"
)

var (
	a = c + b
	b = f()
	c = f() //4
	d = 3
)

func f() int {
	d++
/*
	logFile, err := os.Create("./" + time.Now().Format("20060102") + ".txt");
	if err != nil {
		fmt.Println(err);
	}

	//创建一个Logger
	//参数1：日志写入目的地
	//参数2：每条日志的前缀
	//参数3：日志属性
	loger := log.New(logFile, "test_", log.Ldate|log.Ltime|log.Lshortfile);
	loger.Output(2, "打印一条日志信息");
	fmt.Println("f() called %d", d)*/
	return d
}

func init() {
	//fmt.Println("第一次init 没用到x")
}

//import "fmt"

func init() {
	x += 1
	//fmt.Println("第二个init x的值:%d", a)
}

var x = assign()

var Init = 900

func assign() int {
	//fmt.Println("用assign函数为x赋值")
	return 9
}

func RunInit() {
	fmt.Println("初始化顺序是：d,b,c,a d=%d,b=%d,c=%d,a=%d", d, b, c, a)
}
